通过 Bytebase API 做数据库 Schema 变更
Bytebase 是一款数据库 DevOps 和 CI/CD 工具,适用于开发人员、DBA 和平台工程团队。
它提供了一个直观的图形用户界面来管理数据库 Schema 变更。另一方面,一些团队可能希望将 Bytebase 集成到现有的内部 DevOps 研发平台中。这需要调用 Bytebase API。
在本教程中,你将首先在 Bytebase 控制台中进行 schema 变更。然后,运行一个外部示例程序,通过调用 Bytebase API,在控制台外部触发进行 schema 变更。如果公司已有内部平台,但又期待获得 Bytebase 的某些能力,这个示例将向你展示 Bytebase 提供了这个方式。
API 示例程序开源地址:https://github.com/bytebase/api-example
前提
已安装 Docker Node.js >= v18
启动 Bytebase 并准备账户
1. 确保 Docker 正在运行。复制并粘贴命令以启动 Bytebase。
docker run --init \ --name bytebase \ --restart always \ --publish 5678:8080 \ --health-cmd "curl --fail http://localhost:8080/healthz || exit 1" \ --health-interval 5m \ --health-timeout 10s \ --volume ~/.bytebase/data:/var/opt/bytebase \ bytebase/bytebase:2.12.0 \ --data /var/opt/bytebase \ --port 8080
2. Bytebase 通过 Docker 运行,你可以通过 localhost:5678 访问它。注册第一个管理员账户,该账户将被授予工作区管理员权限。
3. 以管理员用户身份登录,点击右上角的齿轮图标,然后点击工作区 > 成员。
4. 打开创建为服务账户,填写 api-example,选择本教程所需的 DBA 角色,然后点击添加.
5. 在已激活部分找到新创建的服务账户,然后单击复制服务密钥。我们将使用此令牌验证 API 调用。
6. 单击顶部栏上的选择项目,你会看到一个名为 Sample Project 的示例项目。点击它进入项目页面,这里有两个数据库:hr_prod 和 hr_test。
2. 切换 SQL 语句,粘贴以下 SQL 语句并单击预览工单。
CREATE TABLE test_from_console (id integer NOT NULL);
下面是演示以下 API 的示例应用程序:
列出所有项目 列出项目下的所有数据库 在项目中创建 schema 变更工单 获取创建的工单状态
NEXT_PUBLIC_BB_URL: http://localhost:5678 NEXT_PUBLIC_BB_SERVICE_ACCOUNT: api-example NEXT_PUBLIC_BB_SERVICE_KEY:在步骤 01 中复制的服务密钥
pnpm i && pnpm dev
CREATE TABLE test_from_api ( id integer NOT NULL );